<?php
/* -----------------------------------------------------------------
* 	ID:						$Id: xtcPrice.php 2 2011-02-17 13:35:25Z akausch $
* 	Letzter Stand:			$Revision: 2 $
* 	zuletzt geändert von: 	$Author: akausch $
* 	Datum:					$Date: 2011-02-17 14:35:25 +0100 (Do, 17. Feb 2011) $
*
* 	commerce:SEO by Webdesign Erfurt
* 	http://www.commerce-seo.de
*
* 	Copyright (c) since 2010 commerce:SEO
* ------------------------------------------------------------------
* 	based on:
* 	(c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
* 	(c) 2002-2003 osCommerce - www.oscommerce.com
* 	(c) 2003     nextcommerce - www.nextcommerce.org
* 	(c) 2005     xt:Commerce - www.xt-commerce.com
*
* 	Released under the GNU General Public License
* --------------------------------------------------------------- */

class xtcPrice {
	var $currencies;

	function xtcPrice($currency, $cGroup) {

		$this->currencies = array();
		$this->cStatus = array();
		$this->actualGroup = $cGroup;
		$this->actualCurr = $currency;
		$this->TAX = array();
		$this->SHIPPING = array();
		$this->showFrom_Attributes = true;

		// select Currencies
		$currencies_query = "SELECT title,
								code,
								symbol_left,
								symbol_right,
								decimal_point,
								thousands_point,
								decimal_places,
								value
								FROM ".TABLE_CURRENCIES;
		$currencies_query = xtDBquery($currencies_query);
		while ($currencies = xtc_db_fetch_array($currencies_query, true)) {
			$this->currencies[$currencies['code']] = array ('title' => $currencies['title'],
															'symbol_left' => $currencies['symbol_left'],
															'symbol_right' => $currencies['symbol_right'],
															'decimal_point' => $currencies['decimal_point'],
															'thousands_point' => $currencies['thousands_point'],
															'decimal_places' => $currencies['decimal_places'],
															'value' => $currencies['value']);
		}
		// select Customers Status data
		$customers_status_query = "SELECT * FROM ".TABLE_CUSTOMERS_STATUS." WHERE customers_status_id = '".$this->actualGroup."' AND language_id = '".$_SESSION['languages_id']."'";
		$customers_status_query = xtDBquery($customers_status_query);
		$customers_status_value = xtc_db_fetch_array($customers_status_query, true);
		$this->cStatus = array ('customers_status_id' => $this->actualGroup,
											'customers_status_name' => $customers_status_value['customers_status_name'],
											'customers_status_image' => $customers_status_value['customers_status_image'],
											'customers_status_public' => $customers_status_value['customers_status_public'],
											'customers_status_discount' => $customers_status_value['customers_status_discount'],
											'customers_status_ot_discount_flag' => $customers_status_value['customers_status_ot_discount_flag'],
											'customers_status_ot_discount' => $customers_status_value['customers_status_ot_discount'],
											'customers_status_graduated_prices' => $customers_status_value['customers_status_graduated_prices'],
											'customers_status_show_price' => $customers_status_value['customers_status_show_price'],
											'customers_status_show_price_tax' => $customers_status_value['customers_status_show_price_tax'],
											'customers_status_add_tax_ot' => $customers_status_value['customers_status_add_tax_ot'],
											'customers_status_payment_unallowed' => $customers_status_value['customers_status_payment_unallowed'],
											'customers_status_shipping_unallowed' => $customers_status_value['customers_status_shipping_unallowed'],
											'customers_status_discount_attributes' => $customers_status_value['customers_status_discount_attributes'],
											'customers_fsk18' => $customers_status_value['customers_fsk18'],
											'customers_fsk18_display' => $customers_status_value['customers_fsk18_display']);

		// prefetch tax rates for standard zone
		$zones_query = xtDBquery("SELECT tax_class_id as class FROM ".TABLE_TAX_CLASS);
		while ($zones_data = xtc_db_fetch_array($zones_query,true)) {

			// calculate tax based on shipping or deliverey country (for downloads)
			if (isset($_SESSION['billto']) && isset($_SESSION['sendto'])) {
				$tax_address_query = xtDBquery("SELECT ab.entry_country_id,
														ab.entry_zone_id FROM " . TABLE_ADDRESS_BOOK . " ab
														LEFT JOIN " . TABLE_ZONES . " z ON (ab.entry_zone_id = z.zone_id)
														WHERE ab.customers_id = '" . $_SESSION['customer_id'] . "'
														AND ab.address_book_id = '" . ($this->content_type == 'virtual' ? $_SESSION['billto'] : $_SESSION['sendto']) . "'");
      			$tax_address = xtc_db_fetch_array($tax_address_query);
				$this->TAX[$zones_data['class']] = xtc_get_tax_rate($zones_data['class'],$tax_address['entry_country_id'], $tax_address['entry_zone_id']);
			} else {
				$this->TAX[$zones_data['class']] = xtc_get_tax_rate($zones_data['class']);
			}
		}
	}

	// Produktpreis ermitteln
	function xtcGetPrice($pID, $format = true, $qty, $tax_class, $pPrice, $vpeStatus = 0, $cedit_id = 0, $price_type = '') {

		// Darf Kunde Preise sehen?
		if ($this->cStatus['customers_status_show_price'] == '0')
			return $this->xtcShowNote($vpeStatus, $vpeStatus);

		// Steuern ermitteln
		if ($cedit_id != 0) {
			require_once (DIR_FS_INC.'xtc_oe_customer_infos.inc.php');
			$cinfo = xtc_oe_customer_infos($cedit_id);
			$products_tax = xtc_get_tax_rate($tax_class, $cinfo['country_id'], $cinfo['zone_id']);
		} else 
			$products_tax = $this->TAX[$tax_class];

		if ($this->cStatus['customers_status_show_price_tax'] == '0')
			$products_tax = '';

		// Steuern hinzufügen
		if ($pPrice == 0)
			$pPrice = $this->getPprice($pID);
		$pPrice = $this->xtcAddTax($pPrice, $products_tax);

		// Sonderangebot?
		if ($sPrice = $this->xtcCheckSpecial($pID))
			return $this->xtcFormatSpecial($pID, $this->xtcAddTax($sPrice, $products_tax), $pPrice, $format, $vpeStatus, $price_type);

		// check graduated
		if ($this->cStatus['customers_status_graduated_prices'] == '1') {
			// Gruppenpreis ermitteln
			if ($sPrice = $this->xtcGetGraduatedPrice($pID, $qty))
				return $this->xtcFormatSpecialGraduated($pID, $this->xtcAddTax($sPrice, $products_tax), $pPrice, $format, $vpeStatus, $pID, $price_type);
		} else {
			// check Group Price
			if ($sPrice = $this->xtcGetGroupPrice($pID, 1))
				return $this->xtcFormatSpecialGraduated($pID, $this->xtcAddTax($sPrice, $products_tax), $pPrice, $format, $vpeStatus, $pID, $price_type);
		}

		// check Product Discount
		if ($discount = $this->xtcCheckDiscount($pID))
			return $this->xtcFormatSpecialDiscount($pID, $discount, $pPrice, $format, $vpeStatus);

		return $this->xtcFormat($pPrice, $format, 0, false, $vpeStatus, $pID, $price_type);
	}

	function getPprice($pID) {
		$pQuery = "SELECT products_price FROM ".TABLE_PRODUCTS." WHERE products_id='".$pID."'";
		$pQuery = xtDBquery($pQuery);
		$pData = xtc_db_fetch_array($pQuery, true);
		return $pData['products_price'];
	}

	function xtcAddTax($price, $tax) {
		$price = $price + $price / 100 * $tax;
		$price = $this->xtcCalculateCurr($price);
		return round($price, $this->currencies[$this->actualCurr]['decimal_places']);
	}

	function xtcCheckDiscount($pID) {
		if ($this->cStatus['customers_status_discount'] != '0.00') {
			$discount_query = "SELECT products_discount_allowed FROM ".TABLE_PRODUCTS." WHERE products_id = '".$pID."'";
			$discount_query = xtDBquery($discount_query);
			$dData = xtc_db_fetch_array($discount_query, true);

			$discount = $dData['products_discount_allowed'];
			if ($this->cStatus['customers_status_discount'] < $discount)
				$discount = $this->cStatus['customers_status_discount'];
			if ($discount == '0.00')
				return false;
			return $discount;
		}
		return false;
	}

	function xtcGetGraduatedPrice($pID, $qty) {
		if (GRADUATED_ASSIGN == 'true')
			if (xtc_get_qty($pID) > $qty)
				$qty = xtc_get_qty($pID);

		if($this->actualGroup =='0')
			$gruppe = '1';
		else
			$gruppe = $this->actualGroup;

		$graduated_price_data = xtc_db_fetch_array(xtDBquery("SELECT max(quantity) as qty FROM ".TABLE_PERSONAL_OFFERS_BY.$gruppe." WHERE products_id='".$pID."' AND quantity <= '".$qty."'"));

		if ($graduated_price_data['qty']) {
			$graduated_price = xtc_db_fetch_array(xtDBquery("SELECT personal_offer FROM ".TABLE_PERSONAL_OFFERS_BY.$gruppe." WHERE products_id='".$pID."' AND quantity='".$graduated_price_data['qty']."'"));
			$sPrice = $graduated_price['personal_offer'];
			if($sPrice != 0.00)
				return $sPrice;
		} else {
			return;
		}
	}

	function xtcGetGroupPrice($pID, $qty) {
		$graduated_price_query = "SELECT max(quantity) as qty FROM ".TABLE_PERSONAL_OFFERS_BY.$this->actualGroup." WHERE products_id='".$pID."' AND quantity<='".$qty."'";
		$graduated_price_query = xtDBquery($graduated_price_query);
		$graduated_price_data = xtc_db_fetch_array($graduated_price_query, true);
		if ($graduated_price_data['qty']) {
			$graduated_price_query = "SELECT personal_offer FROM ".TABLE_PERSONAL_OFFERS_BY.$this->actualGroup." WHERE products_id='".$pID."' AND quantity='".$graduated_price_data['qty']."'";
			$graduated_price_query = xtDBquery($graduated_price_query);
			$graduated_price_data = xtc_db_fetch_array($graduated_price_query, true);

			$sPrice = $graduated_price_data['personal_offer'];
			if ($sPrice != 0.00)
				return $sPrice;
		} else {
			return;
		}
	}

	function xtcGetOptionPrice($pID, $option, $value) {
		$attribute_price_query = "select pd.products_discount_allowed,pd.products_tax_class_id, p.options_values_price, p.price_prefix, p.options_values_weight, p.weight_prefix from ".TABLE_PRODUCTS_ATTRIBUTES." p, ".TABLE_PRODUCTS." pd where p.products_id = '".$pID."' and p.options_id = '".$option."' and pd.products_id = p.products_id and p.options_values_id = '".$value."'";
		$attribute_price_query = xtDBquery($attribute_price_query);
		$attribute_price_data = xtc_db_fetch_array($attribute_price_query, true);
		$dicount = 0;
		if ($this->cStatus['customers_status_discount_attributes'] == 1 && $this->cStatus['customers_status_discount'] != 0.00) {
			$discount = $this->cStatus['customers_status_discount'];
			if ($attribute_price_data['products_discount_allowed'] < $this->cStatus['customers_status_discount'])
				$discount = $attribute_price_data['products_discount_allowed'];
		}
		$price = $this->xtcFormat($attribute_price_data['options_values_price'], false, $attribute_price_data['products_tax_class_id']);
		if ($attribute_price_data['weight_prefix'] != '+')
			$attribute_price_data['options_values_weight'] *= -1;
		if ($attribute_price_data['price_prefix'] == '+') {
			$price = $price - $price / 100 * $discount;
		} else {
			$price *= -1;
		}
		return array ('weight' => $attribute_price_data['options_values_weight'], 'price' => $price);
	}

	function xtcShowNote($vpeStatus, $vpeStatus = 0) {
		if ($vpeStatus == 1)
			return array ('formated' => NOT_ALLOWED_TO_SEE_PRICES, 'plain' => 0);
		return NOT_ALLOWED_TO_SEE_PRICES;
	}

	function xtcCheckSpecial($pID) {
		$product_query = "SELECT specials_new_products_price FROM ".TABLE_SPECIALS." WHERE products_id = '".$pID."' AND status=1";
		$product_query = xtDBquery($product_query);
		$product = xtc_db_fetch_array($product_query, true);
		return $product['specials_new_products_price'];
	}

	function xtcCalculateCurr($price) {
		return $this->currencies[$this->actualCurr]['value'] * $price;
	}

	function calcTax($price, $tax) {
		return $price * $tax / 100;
	}

	function xtcRemoveCurr($price) {
		if (DEFAULT_CURRENCY != $this->actualCurr) {
			return $price * (1 / $this->currencies[$this->actualCurr]['value']);
		} else {
			return $price;
		}
	}

	function xtcRemoveTax($price, $tax) {
		$price = ($price / (($tax +100) / 100));
		return $price;
	}

	function xtcGetTax($price, $tax) {
		$tax = $price - $this->xtcRemoveTax($price, $tax);
		return $tax;
	}

	function xtcRemoveDC($price,$dc) {
		$price = $price - ($price/100*$dc);
		return $price;
	}

	function xtcGetDC($price,$dc) {
		$dc = $price/100*$dc;
		return $dc;
	}

	function checkAttributes($pID) {
		if (!$this->showFrom_Attributes) return;
		if ($pID == 0)
			return;
		$products_attributes_query = "SELECT count(*) AS total, sum(patrib.options_values_price) AS summe FROM ".TABLE_PRODUCTS_OPTIONS." popt, ".TABLE_PRODUCTS_ATTRIBUTES." patrib WHERE patrib.products_id='".$pID."' and patrib.options_id = popt.products_options_id and popt.language_id = '".(int) $_SESSION['languages_id']."'";
		$products_attributes = xtDBquery($products_attributes_query);
		$products_attributes = xtc_db_fetch_array($products_attributes, true);
		if (($products_attributes['total'] > 0) && ($products_attributes['summe'] > 0))
			return ' '.strtolower(FROM).' ';
	}

	function xtcCalculateCurrEx($price, $curr) {
		return $price * ($this->currencies[$curr]['value'] / $this->currencies[$this->actualCurr]['value']);
	}

	/**
	  Format Functions
	**/

	function xtcFormat($price, $format, $tax_class = 0, $curr = false, $vpeStatus = 0, $pID = 0, $price_type = '', $attr) {
		if ($curr)
			$price = $this->xtcCalculateCurr($price);

		if ($tax_class != 0) {
			$products_tax = $this->TAX[$tax_class];
			if ($this->cStatus['customers_status_show_price_tax'] == '0')
				$products_tax = '';
			$price = $this->xtcAddTax($price, $products_tax);
		}

		if($format) {
			$Pprice = number_format((double)$price, $this->currencies[$this->actualCurr]['decimal_places'], $this->currencies[$this->actualCurr]['decimal_point'], $this->currencies[$this->actualCurr]['thousands_point']);
			$Pprice = $this->checkAttributes($pID).$this->currencies[$this->actualCurr]['symbol_left'].' '.$Pprice.' '.$this->currencies[$this->actualCurr]['symbol_right'];
			if ($vpeStatus == 0)
				return $Pprice;
			else {
				if(PRICE_AS_IMAGE == 'true' && isset($price_type))
					return $this->xtcPriceAsImage($pID, $Pprice, $this->currencies[$this->actualCurr]['symbol_right'], $price_type, '');
				else
					return array('formated' => $Pprice, 'plain' => $price, 'cur_sm_right' => $this->currencies[$this->actualCurr]['symbol_right']);
			}
		} else
			return round($price, $this->currencies[$this->actualCurr]['decimal_places']);
	}

	function xtcPriceAsImage($pID = '0', $price, $curr_code = '', $price_type = '', $attr = '') {
		if($price_type == 'info')
			$imagePath = 'templates/' . CURRENT_TEMPLATE . '/img/numbers/big/';
		else
			$imagePath = 'templates/' . CURRENT_TEMPLATE . '/img/numbers/small/';

		$price = explode(' ', trim((string)$price));

		if ($this->currencies[$this->actualCurr]['symbol_left'] != '') {
			$_curr = trim($price[0]);
			$price = $price[1];

		} elseif ($this->currencies[$this->actualCurr]['symbol_right'] != '') {
			$_curr = trim($price[1]);
			$price = $price[0];
		}

		$price = explode($this->currencies[$this->actualCurr]['decimal_point'], trim($price));

		$suffix = $price[1];
		$prefix = str_replace($this->currencies[$this->actualCurr]['thousands_point'], '', $price[0]);
		$pre = '';
		for ($i = 0; $i < strlen($prefix); $i++)
			$pre.= xtc_image($imagePath.substr($prefix, $i, 1).'.gif', substr($prefix, $i, 1));

		// Dezimalpunkt
		if($this->currencies[$this->actualCurr]['decimal_point'] == '.')
			$point = 'point';
		else
			$point = $this->currencies[$this->actualCurr]['decimal_point'];

		if (file_exists($imagePath . $point . '.gif'))
			$pre.= xtc_image($imagePath . $point . '.gif', $this->currencies[$this->actualCurr]['decimal_point']);
		else
			$pre.= $this->currencies[$this->actualCurr]['decimal_point'];

		// Nachkommastellen
		$su = '';
		if($suffix[0] == 0 && $suffix[1] == 0)
			$su.= xtc_image($imagePath . '-.gif', '-');
		else {
			for ($i = 0; $i < strlen($suffix); $i++)
				$su.= xtc_image($imagePath . substr($suffix, $i, 1) . '_sub.gif', substr($suffix, $i, 1));
		}

		// Währung
		if($_curr == '') {
			if($this->currencies[$this->actualCurr]['symbol_left'] != "")
				$_curr = trim($this->currencies[$this->actualCurr]['symbol_left']);
			else
				$_curr = trim($this->currencies[$this->actualCurr]['symbol_right']);
		}
		if(file_exists($imagePath . strtolower($_curr) . ".gif"))
			$curr = xtc_image($imagePath . strtolower($_curr) . '.gif', strtolower($_curr));
		else
			$curr = $_curr;

		// Attribut da?
		if($attr !='') {
			if(file_exists($imagePath . trim(strtolower($attr)) . ".gif"))
				$attr = xtc_image($imagePath . trim(strtolower($attr)) . '.gif', strtolower($attr));
			else
				$attr = $attr;
		} elseif($this->checkAttributes($pID)) {
				if(file_exists($imagePath . trim(strtolower($this->checkAttributes($pID))) . ".gif")) {
					$attr = xtc_image($imagePath . trim(strtolower($this->checkAttributes($pID))) . '.gif', strtolower($this->checkAttributes($pID)));
				} else {
					$attr = $attr;
				}
		}

		// Zusammensetzen
		if($this->currencies[$this->actualCurr]['symbol_left'] != "")
			return $attr . $curr . $pre . $su;
		else
			return $attr . $pre . $su . $curr;

	}

	function xtcFormatSpecialDiscount($pID, $discount, $pPrice, $format, $vpeStatus = 0) {
		$sPrice = $pPrice - ($pPrice / 100) * $discount;
		if ($format) {
			$price = '
				<span class="product_info_old">
					<small>'.INSTEAD.'</small>
					<del>'.$this->xtcFormat($pPrice, $format).'</del>
				</span>
				<span class="product_info_real_price">
					'.ONLY.$this->checkAttributes($pID).$this->xtcFormat($sPrice, $format).'
				</span>
				<span class="product_price_save">
					'.YOU_SAVE.round(($pPrice-$sPrice) / $pPrice * 100,1).'%';
					if ($discount != 0) {
						$price .= '<br />'.BOX_LOGINBOX_DISCOUNT.': '.round($discount).'%';
					}
				$price .= '</span>';
			if ($vpeStatus == 0) {
				return $price;
			} else {
				return array('formated' => $price, 'plain' => $sPrice);
			}
		} else {
			return round($sPrice, $this->currencies[$this->actualCurr]['decimal_places']);
		}
	}

	function xtcFormatSpecial($pID, $sPrice, $pPrice, $format, $vpeStatus = 0, $price_type) {
		if($price_type == 'info')
			$imagePath = 'templates/' . CURRENT_TEMPLATE . '/img/numbers/big/';
		else
			$imagePath = 'templates/' . CURRENT_TEMPLATE . '/img/numbers/small/';
		if($format) {
			if(PRICE_AS_IMAGE == 'true') {
				$sPrice_raw = $sPrice;
				$sPrice = number_format($sPrice, $this->currencies[$this->actualCurr]['decimal_places'], $this->currencies[$this->actualCurr]['decimal_point'], $this->currencies[$this->actualCurr]['thousands_point']);

				$price = '
					<span class="product_info_old">
						<small>'.INSTEAD.'</small>
						<del>'.$this->xtcFormat($pPrice, $format).'</del>
					</span>
					<span class="product_info_real_price">
						'.$this->xtcPriceAsImage($pID, $sPrice, $this->currencies[$this->actualCurr]['symbol_right'], $price_type, ONLY).'
					</span>
					<span class="product_price_save">
						'.YOU_SAVE.round(($pPrice-$sPrice_raw) / $pPrice * 100,1).'%
					</span>';
				return $price;

			} else {
				$price = '
					<span class="product_info_old">
						<small>'.INSTEAD.'</small>
						<del>'.$this->xtcFormat($pPrice, $format).'</del>
					</span>
					<span class="product_info_real_price">
						'.ONLY.$this->checkAttributes($pID).$this->xtcFormat($sPrice, $format).'
					</span>
					<span class="product_price_save">
						'.YOU_SAVE.round(($pPrice-$sPrice) / $pPrice * 100,1).'%
					</span>';

				if ($vpeStatus == 0)
					return $price;
				else {
					return array('formated' => $price, 'plain' => $sPrice);
				}
			}
		} else
			return round($sPrice, $this->currencies[$this->actualCurr]['decimal_places']);
	}

	function xtcFormatSpecialGraduated($pID, $sPrice, $pPrice, $format, $vpeStatus = 0, $pID, $price_type) {
		$tQuery = "SELECT products_tax_class_id	FROM ".TABLE_PRODUCTS." WHERE products_id='".$pID."'";
		$tQuery = xtDBquery($tQuery);
		$tQuery = xtc_db_fetch_array($tQuery);
		$tax_class = $tQuery[products_tax_class_id];

		if($pPrice == 0)
			return $this->xtcFormat($sPrice, $format, 0, false, $vpeStatus, $price_type);

		if ($discount = $this->xtcCheckDiscount($pID))
			$sPrice -= $sPrice / 100 * $discount;

		if ($format) {
			if($this->actualGroup =='0')
				$gruppe = '1';
			else
				$gruppe = $this->actualGroup;

			$pPriceRaw = $pPrice;
			$sPriceRaw = $sPrice;
			$sPrice = number_format($sPrice, $this->currencies[$this->actualCurr]['decimal_places'], $this->currencies[$this->actualCurr]['decimal_point'], $this->currencies[$this->actualCurr]['thousands_point']);
			$pPrice = number_format($pPrice, $this->currencies[$this->actualCurr]['decimal_places'], $this->currencies[$this->actualCurr]['decimal_point'], $this->currencies[$this->actualCurr]['thousands_point']);


			$sQuery = "SELECT max(quantity) as qty FROM ".TABLE_PERSONAL_OFFERS_BY.$gruppe." WHERE products_id='".$pID."'";
			$sQuery = xtDBquery($sQuery);
			$sQuery = xtc_db_fetch_array($sQuery, true);
			if(PRICE_AS_IMAGE == 'true') {
				if(($this->cStatus['customers_status_graduated_prices'] == '1') && ($sQuery[qty] > 1)) {
					$bestPrice = $this->xtcGetGraduatedPrice($pID, $sQuery[qty]);
					if ($discount)
						$bestPrice -= $bestPrice / 100 * $discount;
					$bestPrice = number_format($bestPrice, $this->currencies[$this->actualCurr]['decimal_places'], $this->currencies[$this->actualCurr]['decimal_point'], $this->currencies[$this->actualCurr]['thousands_point']);
					return $this->xtcPriceAsImage($pID, $bestPrice, $this->currencies[$this->actualCurr]['symbol_right'], 'info', FROM).' <br />
							<span class="single_price">'.$this->xtcPriceAsImage($pID, $sPrice, $this->currencies[$this->actualCurr]['symbol_right'], 'box', SINGLE_PRICE)	.'</span>';

				} elseif ($sPrice != $pPrice) {
					return '<span class="productOldPrice">'.MSRP.' '.$this->xtcPriceAsImage($pID, $pPrice, $this->currencies[$this->actualCurr]['symbol_right'], '', FROM).'</span>
							<br />'.YOUR_PRICE.$this->checkAttributes($pID).$this->xtcPriceAsImage($pID, $sPrice, $this->currencies[$this->actualCurr]['symbol_right'], 'info', FROM);
				}
				else
					return $this->xtcPriceAsImage($pID, $sPrice, '');

			} else {
				if(($this->cStatus['customers_status_graduated_prices'] == '1') && ($sQuery[qty] > 1)) {
					$bestPrice = $this->xtcGetGraduatedPrice($pID, $sQuery[qty]);
					if ($discount)
						$bestPrice -= $bestPrice / 100 * $discount;
					$price .= FROM.$this->xtcFormat($bestPrice, $format, $tax_class).' <br /><span class="single_price">'.SINGLE_PRICE	.$this->xtcFormat($pPriceRaw, $format)	.'</span>';
				} else if ($sPriceRaw != $pPriceRaw)
					$price = '<span class="productOldPrice">'.MSRP.' '.$this->xtcFormat($pPriceRaw, $format).'</span><br />'.YOUR_PRICE.$this->checkAttributes($pID).$this->xtcFormat($sPriceRaw, $format);
				elseif(($sQuery['qty'] == 1))
					$price = $this->xtcFormat($sPriceRaw, $format);
				else
					$price = FROM.$this->xtcFormat($sPriceRaw, $format);
			}
			if ($vpeStatus == 0)
				return $price;
			else
				return array('formated' => $price, 'plain' => $sPrice);
		} else
			return round($sPrice, $this->currencies[$this->actualCurr]['decimal_places']);
	}

	function get_decimal_places($code) {
		return $this->currencies[$this->actualCurr]['decimal_places'];
	}

}
?>